(function($) {
	var myflow = $.myflow;

	var common_pros = {
		name : {
			name : 'name',
			label : '名称',
			value : '节点',
			editor : function() {
				return new myflow.editors.textEditor();
			}
		},
		description : {
			name : 'description',
			label : '描述',
			value : '',
			editor : function() {
				return new myflow.editors.inputEditor();
			}
		},
		workTime : {
			name : 'workTime',
			label : '工作时长(小时)',
			value : '',
			editor : function() {
				return new myflow.editors.inputEditor();
			}
		},
		projtype : {
			name : 'projtype',
			label : '对象类型',
			value : '',
			editor : function() {
				return new myflow.editors.selectEditor(myflow.config.contextPath + "/frame/definition/getObjDef.do", "projtype", "object_type_name", "object_type",
						"changeFormType", "initFormType");
			}
		},
		enterconditions : {
			name : 'enterconditions',
			label : '进入条件',
			value : '',
			editor : function() {
				return new myflow.editors.enterconditionsEditor();
			}
		},
		task : {
			name : 'task',
			label : '操作',
			value : '',
			editor : function() {
				return new myflow.editors.taskEditor();
			}
		},
		rejectstep : {
			name : 'rejectstep',
			label : '拒绝步骤',
			value : '01',
			editor : function() {
				return new myflow.editors.selectEditor([ {
					name : "上一步",
					value : "previousstep"
				}, {
					name : "结束",
					value : "SYS_END"
				} ]);
			}
		},
		defType : {
			name : 'defType',
			label : '流程类型',
			value : 'majorDef',
			editor : function() {
				return new myflow.editors.selectEditor([ {
					name : "主流程",
					value : "majorDef"
				}, {
					name : "子流程",
					value : "subDef"
				} ]);
			}
		},
		formInherit : {
			name : 'formInherit',
			label : '表单继承',
			value : 'false',
			editor : function() {
				return new myflow.editors.selectEditor([ {
					name : "继承主流程表单",
					value : "true"
				}, {
					name : "不继承主流程表单",
					value : "false"
				} ]);
			}
		},
		quantity : {
			name : 'quantity',
			label : '工作量',
			value : '',
			editor : function() {
				return new myflow.editors.inputEditor();
			}
		},
		priority : {
			name : 'priority',
			label : '优先级',
			value : '1',
			editor : function() {
				return new myflow.editors.selectEditor([ {
					name : "最低优先级",
					value : "1"
				}, {
					name : "一般优先级",
					value : "2"
				}, {
					name : "最高优先级",
					value : "3"
				} ]);
			}
		},
		countersign : {
			name : 'countersign',
			label : '是否会签',
			value : '2',
			editor : function() {
				return new myflow.editors.selectEditor([ {
					name : "是",
					value : "1"
				}, {
					name : "否",
					value : "2"
				} ]);
			}
		},
		owners : {
			name : 'owners',
			label : '分配角色',
			value : '',
			editor : function() {
				return new myflow.editors.ownersEditor();
			}
		},
		right : {
			name : 'right',
			label : '步骤授权',
			value : '',
			editor : function() {
				return new myflow.editors.rightEditor();
			}
		},
		formTemplate : {
			name : 'formTemplate',
			label : '表单模板',
			value : '',
			editor : function() {
				return new myflow.editors.templateEditor(myflow.config.contextPath + "/frame/template/listProjtypeTemplates.do");
			}
		},
		approveTemplate : {
			name : 'approveTemplate',
			label : '审批模板',
			value : '',
			editor : function() {
				return new myflow.editors.templateEditor(myflow.config.contextPath + "/frame/template/listProjtypeTemplates.do","approve");
			}
		}
	};

	$.extend(true, myflow.config.props.props, {
		title : {
			name : 'title',
			label : '标题',
			value : '新建流程',
			editor : function() {
				return new myflow.editors.inputEditor();
			}
		},
		defname : {
			name : 'defname',
			label : '名称',
			value : 'newDefinition',
			editor : function() {
				return new myflow.editors.inputEditor();
			}
		},
		defType : $.extend(true, {}, common_pros['defType'], {}),
		formInherit : $.extend(true, {}, common_pros['formInherit'], {}),
		description : $.extend(true, {}, common_pros['description'], {}),
		projtype : $.extend(true, {}, common_pros['projtype'], {}),
		enterconditions : $.extend(true, {}, common_pros['enterconditions'], {}),
		initoperate : $.extend(true, {}, common_pros['task'], {
			name : 'initoperate',
			label : '初始操作'
		}),
		formTemplate : $.extend(true, {}, common_pros['formTemplate'], {}),
		approveTemplate : $.extend(true, {}, common_pros['approveTemplate'], {})
		
	});

	$.extend(true, myflow.config.path.props, {
		enterconditions : $.extend(true, {}, common_pros['enterconditions'], {})
	});

	$.extend(true, myflow.config.tools.states, {
		start : {},
		end : {},
		"end-cancel" : {},
		"end-error" : {},
		state : {},
		task : {},
		fork : {},
		join : {}
	});

	$.extend(true, myflow.config.tools.states.end, {
		showType : "text",
		type : 'end',
		name : {
			text : '<<end>>'
		},
		text : {
			text : '结束'
		},
		img : {
			src : 'img/48/end_event_terminate.png',
			width : 48,
			height : 48
		},
		attr : {
			width : 48,
			height : 48,
			r : 25
		},
		props : {
			name : $.extend(true, {}, common_pros['name'], {}),
			projtype : $.extend(true, {}, common_pros['projtype'], {}),
			finalapproval : $.extend(true, {}, common_pros['task'], {
				name : 'finalapproval',
				label : '批准操作'
			}),
			finalreject : $.extend(true, {}, common_pros['task'], {
				name : 'finalreject',
				label : '拒绝操作'
			}),
			formTemplate : $.extend(true, {}, common_pros['formTemplate'], {}),
			approveTemplate : $.extend(true, {}, common_pros['approveTemplate'], {})
		}
	});
	$.extend(true, myflow.config.tools.states["end-cancel"], myflow.config.tools.states.end, {
		type : 'end-cancel',
		name : {
			text : '<<end-cancel>>'
		},
		text : {
			text : '结束'
		},
		img : {
			src : 'img/48/end_event_cancel.png'
		}
	});
	$.extend(true, myflow.config.tools.states["end-error"], myflow.config.tools.states.end, {
		type : 'end-error',
		name : {
			text : '<<end-error>>'
		},
		text : {
			text : '结束'
		},
		img : {
			src : 'img/48/end_event_error.png'
		}
	});

	$.extend(true, myflow.config.tools.states.start, {
		showType : "text",
		type : 'start',
		name : {
			text : '<<start>>'
		},
		text : {
			text : '开始'
		},
		img : {
			src : 'img/48/start_event_empty.png',
			width : 48,
			height : 48
		},
		attr : {
			width : 48,
			height : 48,
			r : 24
		},
		props : {
			name : $.extend(true, {}, common_pros['name'], {}),
			projtype : $.extend(true, {}, common_pros['projtype'], {}),
			formTemplate : $.extend(true, {}, common_pros['formTemplate'], {}),
			approveTemplate : $.extend(true, {}, common_pros['approveTemplate'], {})
		}
	});

	$.extend(true, myflow.config.tools.states.task, {
		showType : "text",
		type : 'task',
		name : {
			text : '<<task>>'
		},
		text : {
			text : '步骤'
		},
		img : {
			src : 'img/48/task_empty.png',
			width : 48,
			height : 48
		},
		props : {
			name : $.extend(true, {}, common_pros['name'], {}),
			rejectstep : $.extend(true, {}, common_pros['rejectstep'], {}),
			quantity : $.extend(true, {}, common_pros['quantity'], {}),
			workTime : $.extend(true, {}, common_pros['workTime'], {}),
			priority : $.extend(true, {}, common_pros['priority'], {}),
			countersign : $.extend(true, {}, common_pros['countersign'], {}),
			projtype : $.extend(true, {}, common_pros['projtype'], {}),
			owners : $.extend(true, {}, common_pros['owners'], {}),
			right : $.extend(true, {}, common_pros['right'], {}),
			enteroperate : $.extend(true, {}, common_pros['task'], {
				name : 'enteroperate',
				label : '进入操作'
			}),
			finalapproval : $.extend(true, {}, common_pros['task'], {
				name : 'finalapproval',
				label : '批准操作'
			}),
			finalreject : $.extend(true, {}, common_pros['task'], {
				name : 'finalreject',
				label : '拒绝操作'
			}),
			knowledge : {
				name : 'knowledge',
				label : '知识点',
				value : '',
				editor : function() {
					return new myflow.editors.knowledgeEditor();
				}
			},
			formTemplate : $.extend(true, {}, common_pros['formTemplate'], {}),
			approveTemplate : $.extend(true, {}, common_pros['approveTemplate'], {})
		}
	});

	$.extend(true, myflow.config.tools.states.state, myflow.config.tools.states.task, {
		showType : "text",
		type : 'state',
		name : {
			text : '<<state>>'
		},
		text : {
			text : '步骤'
		},
		img : {
			src : 'img/48/task_empty.png',
			width : 48,
			height : 48
		},
		attr : {
			width : 100,
			height : 50,
			r : 10
		}
	});

	$.extend(true, myflow.config.tools.states.fork, myflow.config.tools.states.start, {
		showType : 'text',
		type : 'fork',
		name : {
			text : '<<fork>>'
		},
		text : {
			text : '分支'
		},
		img : {
			src : 'img/48/gateway_parallel.png'
		},
		attr : {
			width : 80,
			height : 48,
			r : 10
		}
	});
	$.extend(true, myflow.config.tools.states.join, myflow.config.tools.states.fork, {
		type : 'join',
		name : {
			text : '<<join>>'
		},
		text : {
			text : '合并'
		},
		img : {
			src : 'img/48/gateway_parallel.png'
		}
	});

})(jQuery);